#define RETARDER_INIT() int _ipos, _jpos; uint64 _tmp;

#define RETARDER_SWAP(i,j) {\
    _ipos = i % RETARDER_ELEM_NUM; \
    _jpos = j % RETARDER_ELEM_NUM; \
    retarder0[_ipos] = i;\
    retarder1[_jpos] = j;\
    _tmp = retarder0[_ipos];\
    retarder0[_ipos] = retarder1[_jpos];\
    retarder1[_jpos] = _tmp; \
    i = retarder0[_ipos];\
    j = retarder1[_jpos];\
}

#define RETARDER_ASSIGN(i,j) {\
    (void) _tmp;\
    _ipos = i % RETARDER_ELEM_NUM; \
    _jpos = j % RETARDER_ELEM_NUM; \
    retarder1[_jpos] = j;\
    retarder0[_ipos] = retarder1[_jpos];\
    i = retarder0[_ipos];\
}
